Summary of QuickDraw 3D Objects
C Summary
Constants
System-Wide Macros
#define Q3_FOUR_CHARACTER_CONSTANT(a,b,c,d)((const unsigned long) \ ((const unsigned long) (a) << 24) \ | ((const unsigned long) (b) << 16) \ | ((const unsigned long) (c) << 8) \ | ((const unsigned long) (d))) #define Q3_OBJECT_TYPE(a,b,c,d) \ ((TQ3ObjectType) Q3_FOUR_CHARACTER_CONSTANT(a,b,c,d)) #define Q3_METHOD_TYPE(a,b,c,d) \ ((TQ3MethodType) Q3_FOUR_CHARACTER_CONSTANT(a,b,c,d))Core Object Types
#define kQ3ObjectTypeElement Q3_OBJECT_TYPE('e','l','m','n') #define kQ3ObjectTypePick Q3_OBJECT_TYPE('p','i','c','k') #define kQ3ObjectTypeShared Q3_OBJECT_TYPE('s','h','r','d') #define kQ3ObjectTypeView Q3_OBJECT_TYPE('v','i','e','w') #define kQ3ObjectTypeInvalid 0Shared Types
#define kQ3SharedTypeControllerState Q3_OBJECT_TYPE('c','t','s','t') #define kQ3SharedTypeDrawContext Q3_OBJECT_TYPE('d','c','t','x') #define kQ3SharedTypeFile Q3_OBJECT_TYPE('f','i','l','e') #define kQ3SharedTypeReference Q3_OBJECT_TYPE('r','f','r','n') #define kQ3SharedTypeRenderer Q3_OBJECT_TYPE('r','d','d','r') #define kQ3SharedTypeSet Q3_OBJECT_TYPE('s','e','t',' ') #define kQ3SharedTypeShape Q3_OBJECT_TYPE('s','h','a','p') #define kQ3SharedTypeShapePart Q3_OBJECT_TYPE('s','p','r','t') #define kQ3SharedTypeStorage Q3_OBJECT_TYPE('s','t','r','g') #define kQ3SharedTypeString Q3_OBJECT_TYPE('s','t','r','n') #define kQ3SharedTypeTexture Q3_OBJECT_TYPE('t','x','t','r') #define kQ3SharedTypeTracker Q3_OBJECT_TYPE('t','r','k','r') #define kQ3SharedTypeViewHints Q3_OBJECT_TYPE('v','w','h','n')Shape Types
#define kQ3ShapeTypeCamera Q3_OBJECT_TYPE('c','m','r','a') #define kQ3ShapeTypeGeometry Q3_OBJECT_TYPE('g','m','t','r') #define kQ3ShapeTypeGroup Q3_OBJECT_TYPE('g','r','u','p') #define kQ3ShapeTypeLight Q3_OBJECT_TYPE('l','g','h','t') #define kQ3ShapeTypeShader Q3_OBJECT_TYPE('s','h','d','r') #define kQ3ShapeTypeStyle Q3_OBJECT_TYPE('s','t','y','l') #define kQ3ShapeTypeTransform Q3_OBJECT_TYPE('x','f','r','m') #define kQ3ShapeTypeUnknown Q3_OBJECT_TYPE('u','n','k','n')Element Types
#define kQ3ElementTypeAttribute Q3_OBJECT_TYPE('e','a','t','t') #define kQ3ElementTypeNone 0 #define kQ3ElementTypeUnknown 32Set Types
#define kQ3SetTypeAttribute Q3_OBJECT_TYPE('a','t','t','r')String Types
#define kQ3StringTypeCString Q3_OBJECT_TYPE('s','t','r','c')Method Types
#define kQ3MethodTypeObjectFileVersion Q3_METHOD_TYPE('v','e','r','s') #define kQ3MethodTypeObjectReadData Q3_METHOD_TYPE('r','d','d','t') #define kQ3MethodTypeObjectTraverse Q3_METHOD_TYPE('t','r','v','s') #define kQ3MethodTypeObjectUnregister Q3_METHOD_TYPE('u','n','r','g') #define kQ3MethodTypeObjectWrite Q3_METHOD_TYPE('w','r','i','t') #define kQ3MethodTypeElementCopyAdd Q3_METHOD_TYPE('e','c','p','a') #define kQ3MethodTypeElementCopyDuplicateQ3_METHOD_TYPE('e','c','p','d') #define kQ3MethodTypeElementCopyGet Q3_METHOD_TYPE('e','c','p','g') #define kQ3MethodTypeElementCopyReplaceQ3_METHOD_TYPE('e','c','p','r') #define kQ3MethodTypeElementDelete Q3_METHOD_TYPE('e','d','e','l')Data Types
Objects
typedef long TQ3ObjectType; typedef struct TQ3ObjectPrivate *TQ3Object; typedef TQ3Object TQ3ElementObject; typedef TQ3Object TQ3PickObject; typedef TQ3Object TQ3SharedObject; typedef TQ3Object TQ3ViewObject;Shared Objects
typedef TQ3SharedObject TQ3ControllerStateObject; typedef TQ3SharedObject TQ3DrawContextObject; typedef TQ3SharedObject TQ3FileObject; typedef TQ3SharedObject TQ3ReferenceObject; typedef TQ3SharedObject TQ3RendererObject; typedef TQ3SharedObject TQ3SetObject; typedef TQ3SharedObject TQ3ShapeObject; typedef TQ3SharedObject TQ3ShapePartObject; typedef TQ3SharedObject TQ3StorageObject; typedef TQ3SharedObject TQ3StringObject; typedef TQ3SharedObject TQ3TextureObject; typedef TQ3SharedObject TQ3TrackerObject; typedef TQ3SharedObject TQ3ViewHintsObject;Sets
typedef TQ3SetObject TQ3AttributeSet; typedef long TQ3ElementType;Shapes
typedef TQ3ShapeObject TQ3CameraObject; typedef TQ3ShapeObject TQ3GeometryObject; typedef TQ3ShapeObject TQ3GroupObject; typedef TQ3ShapeObject TQ3LightObject; typedef TQ3ShapeObject TQ3ShaderObject; typedef TQ3ShapeObject TQ3StyleObject; typedef TQ3ShapeObject TQ3TransformObject; typedef TQ3ShapeObject TQ3UnknownObject;Groups
typedef TQ3GroupObject TQ3DisplayGroupObject;Shaders
typedef TQ3ShaderObject TQ3SurfaceShaderObject; typedef TQ3ShaderObject TQ3IlluminationShaderObject;Other Basic Types
typedef struct TQ3GroupPositionPrivate *TQ3GroupPosition; typedef struct TQ3ObjectClassPrivate *TQ3ObjectClass; typedef unsigned long TQ3MethodType; typedef void (*TQ3FunctionPointer)(void);QuickDraw 3D Objects Routines
Managing Objects Classes
TQ3Status Q3ObjectClass_Unregister ( TQ3ObjectClass objectClass);Managing Objects
TQ3Status Q3Object_Dispose(TQ3Object object); TQ3Object Q3Object_Duplicate(TQ3Object object); TQ3Object Q3Object_Submit(TQ3Object object, TQ3ViewObject view); TQ3Boolean Q3Object_IsDrawable(TQ3Object object); TQ3Boolean Q3Object_IsWritable(TQ3Object object);Determining Object Types
TQ3ObjectType Q3Object_GetLeafType ( TQ3Object object); TQ3ObjectType Q3Object_GetType(TQ3Object object); TQ3Boolean Q3Object_IsType(TQ3Object object, TQ3ObjectType type);Managing Shared Objects
TQ3SharedObject Q3Shared_GetReference ( TQ3SharedObject sharedObject); TQ3ObjectType Q3Shared_GetType ( TQ3SharedObject sharedObject);Registering Custom Elements
TQ3ObjectClass Q3ElementClass_Register ( TQ3ElementType elementType, char *name, unsigned long sizeOfElement, TQ3MetaHandler metaHandler); TQ3Status Q3ElementType_GetElementSize ( TQ3ElementType elementType, unsigned long *sizeOfElement);Application-Defined Routines
Method Metahandler
typedef TQ3FunctionPointer (*TQ3MetaHandler) ( TQ3MethodType methodType);Object Methods
typedef TQ3Status (*TQ3ObjectUnregisterMethod) ( TQ3ObjectClass objectClass);Set Methods
typedef TQ3Status (*TQ3ElementCopyAddMethod) ( const void *fromAPIElement, void *toInternalElement); typedef TQ3Status (*TQ3ElementCopyDuplicateMethod) ( const void *fromInternalElement, void *toInternalElement); typedef TQ3Status (*TQ3ElementCopyGetMethod) ( const void *fromInternalElement, void *toAPIElement); typedef TQ3Status (*TQ3ElementCopyReplaceMethod) ( const void *fromAPIElement, void *ontoInternalElement); typedef TQ3Status (*TQ3ElementDeleteMethod) ( void *internalElement);